星巡研究院

渗透视角下的二进制安全

### 对照 - 1 变量→栈 / 寄存器 #### 1. 链路定位 * 在整册链路中的位置:识字能力第一层,数据传送与算术是所有指令的基本单元,后续栈帧、跳转、调用都建立在寻址模式之上。 * 作用:看到 `mov/add/imul` 能还原对应的 C 赋值与表达式。 #### 2. 前置知识 * x86-64 System V 调用约定:前两个整型参数 `edi/esi`,返回值 `eax`。 * 寄存器别名与位宽:32 位写入自动清零高 32 位。 * 零扩展 `movzx` 与符号扩展 `movsx` 的区别。 #### 3. 技术原理 * 局部变量优先进寄存器,放不下或被取地址时落栈槽。宽度收窄(`int`→`short`)只写低位,高位丢弃,回升时按符号位或零扩展。 * 【源码漏洞】类型宽度不一致导致截断、符号扩展错误。【配置缺陷】目标架构位宽与类型宽度不匹配。 * x86-64 System V 调用约定按固定寄存器顺序分配整型与指针参数:第1参数进 `rdi`、第2进 `rsi`、第3进 `rdx`、第4进 `rcx`、第5进 `r8`、
这是进阶内容

升级理论包获取本册全部章节,从机器本质系统入门